package com.xmtlxx.wms.domain.vo;

import com.xmtlxx.common.annotation.ExcelDictFormat;
import com.xmtlxx.common.convert.ExcelDictConvert;
import com.xmtlxx.oms.domain.vo.BoxVo;
import com.xmtlxx.tms.domain.vo.WaybillDtlVo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.xmtlxx.system.domain.SysOss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 交接信息视图对象 t_handover
 *
 * @author xmtlxx
 * @date 2022-08-15
 */
@Data
@ApiModel("交接信息视图对象")
@ExcelIgnoreUnannotated
public class HandoverVo {

    private static final long serialVersionUID = 1L;

    /**
     * 交接信息ID
     */
    @ExcelProperty(value = "交接信息ID")
    @ApiModelProperty("交接信息ID")
    private String id;

    /**
     * 交接人ID
     */
    @ExcelProperty(value = "交接人ID")
    @ApiModelProperty("交接人ID")
    private Long operator;

    /**
     * 交接人签名
     */
    @ExcelProperty(value = "交接人签名")
    @ApiModelProperty("交接人签名")
    private String signs;

    /**
     * 交接时间
     */
    @ExcelProperty(value = "交接时间")
    @ApiModelProperty("交接时间")
    private Date handTime;

    /**
     * 交接图片
     */
    @ExcelProperty(value = "交接图片")
    @ApiModelProperty("交接图片")
    private String handPics;

    /**
     * 交接说明
     */
    @ExcelProperty(value = "交接说明")
    @ApiModelProperty("交接说明")
    private String memo;

    /**
     * 交接状态
     */
    @ExcelProperty(value = "交接状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wms_handover_status")
    @ApiModelProperty("交接状态")
    private String status;

    /**
     * 删除标识
     */
    @ExcelProperty(value = "删除标识", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_del_flag")
    @ApiModelProperty("删除标识")
    private String delFlag;


    /**
     * 对接人ID
     */
    private Long counterpart;
    /**
     * 对接人签名
     */
    private String counterpartSign;
    /**
     * 对象ID
     */
    private String objid;
    /**
     * 交接类型
     */
    private String type;//0：取件交接，1：收件交接

    private String orderType;

    private List<HandoverDtlVo> items;

    private List<SysOss> oss;

    private String taskId;

    private String operatorName;

    private String counterpartName;

    private String action;

    @ApiModelProperty("是否暂存")
    private String isStaging;


    /**
     * 签名附件
     */
    @ApiModelProperty("签名附件")
    private String signsFile;

    /**
     * 签名状态
     */
    @ApiModelProperty("签名状态")
    private String signsStatus;


    /**
     * 复核签名
     */
    @ApiModelProperty("复核签名")
    private String checkSign;

    private List<BoxVo> boxList;

    private Long stagingDept;

    private String tel;


    /**
     * 交接单信息
     */
    //移交单位
    private String transferDeptName;
    //订单编号
    private String taskNo;
    //取货时间
    private Date pickUpTime;
    //取货地址
    private String pickUpAddress;
    //到货地址
    private String arrivalAddress;

    //到货人
    private String arrivaler;

    //到货时间
    private Date arrivalTime;

    //透明附件
    private String signOssId;//移送人

    private String ctpOssId;//中心保管员

    private String puOssId;//取货人

    private String sendContacts;//联系人

    private String sendTel;//联系电话

    private String storeId;

    private List<HandoverDtlVo> takeItems;

    private String orderDeptName;//配送单位

    private String receiveDeptName;//收件单位

    private String htype;

    private String taskType;//订单类型 0-入库 1-出库 2-处置 3-调用

    private Date orderCreates;//下单时间

    private List<WaybillDtlVo> vos;

    /**
     * 车辆单，提示未上传附件
     */
    private String code;
    private String orderId;

    private String dispatchRemark;

    private String character;

    private String signeeName;
}
